//package cn.youyeku.sockettransmission.soket;
//
//
//import android.content.Context;
//import android.util.Log;
//import android.widget.Toast;
//
//import java.io.DataInputStream;
//import java.io.DataOutputStream;
//import java.io.File;
//import java.io.FileInputStream;
//import java.io.FileOutputStream;
//import java.io.IOException;
//import java.net.Socket;
//
//import cn.youyeku.sockettransmission.ui.Constant;
//
//import static android.R.attr.max;
//
//
//public class socketClient {
//
//
//    //创建连接客户端 根据类型来创建
//    private int PORT;
//    private String IP_ADDR;
//    public Socket socket;
//    private String SocketType;
//    private DataInputStream in;
//    private DataOutputStream out;
//    boolean isLock;
//
//
//    soketTextListener soketTextListener;
//    soketFileListener soketFileListener;
//
//
//    public socketClient(String IP_ADDR, int PORT, String SocketType) {
//        this.PORT = PORT;
//        this.IP_ADDR = IP_ADDR;
//        this.SocketType = SocketType;
//
//    }
//
//
//    public void init() {
//        try {
//
//
//            socket = new Socket(IP_ADDR, PORT);
//
//            in = new DataInputStream(socket.getInputStream());
//            out = new DataOutputStream(socket.getOutputStream());
//
//            //发送数据处理的类型
//            sendText(SocketType);
//            Log.w("---", "init " + SocketType);
//
//            //接收线程初始化
//            switch (SocketType) {
//                case Constant.TYPE_FILE:
//                    //接收文件
//                    Log.w(SocketType, "--线程接收初始化");
//                    while (true) {
//                        Log.w("---", "FileRec wait");
//                        //发送文件前先要获取回应才能进行下一步
//
//                        getFile();
//
//                    }
//
//                case Constant.TYPE_TEXT:
//                    Log.w(SocketType, "--线程接收初始化");
//                    while (true) {
//                        String msg = getText();
//                        soketTextListener.onReciveText(msg);
//                    }
//                default:
//                    Log.w("----", "not allows");
//            }
//
//
//        } catch (IOException e) {
//            e.printStackTrace();
//            Constant.isStart = false;
//            System.exit(0);
//        }
//
//    }
//
//    public String getText() throws IOException {
//
//        return in.readUTF();
//    }
//
//    public void sendText(String data) throws IOException {
//        Log.w("---" + SocketType, "发送数据" + data);
//        out.writeUTF(data);
//    }
//
//    public void getFile() throws IOException {
//        String type = getText();
//        if (!type.equals(Constant.TYPE_FILE)){
//            Log.w("", "文件类型不符合 " + type);
//            return;
//        }
//
//        //获取名称
//        String fileName = getText();
//
//        String filePath = Constant.SDCARDPATH;
//        File f = new File(filePath, fileName);
//        Log.w("--", filePath + fileName);
//        FileOutputStream fos = new FileOutputStream(f);
//        int max = 1024;
//        byte[] bytes = new byte[max];
//        int length;
//
//        //打开流
//        while (true) {
//            length = in.read(bytes, 0, bytes.length);
//
//            if (length < max) {
//                fos.write(bytes, 0, length);
//                fos.flush();
//
//                break;
//
//            } else {
//                fos.write(bytes, 0, length);
//                fos.flush();
//            }
//
//
//        }
//
//
//        fos.close();
//        Log.w("", "传送完成 关闭流");
//
//        soketFileListener.onReciveFileSuccess(fileName);
//
//
//    }
//
//
//    public void sendFile(String path) throws IOException, InterruptedException {
//
//        Log.w("----" + SocketType, "发送文件路径" + path);
//        File file = new File(path);
//        if (!file.exists()) {
//            System.out.print("文件不存在");
//            return;
//        }
//
//        sendText(Constant.TYPE_FILE);
//        sendText(file.getName());
//        Log.w("----", "发送名称->准备发送数据流");
//
//        FileInputStream fis = new FileInputStream(file);
//
//        //开始发送文件
//        //字节缓冲区
//        int max=1024;
//        byte[] bytes = new byte[max];
//        int length = 0;
//
//
//        while (true) {
//            length = fis.read(bytes, 0, bytes.length);
//
//            if (length < max) {
//                out.write(bytes, 0, length);
//                out.flush();
//
//                break;
//
//            } else {
//                out.write(bytes, 0, length);
//                out.flush();
//            }
//
//
//        }
//
////        //返回int what 用于判断当前进度
////        while ((length = fis.read(bytes, 0, bytes.length)) != -1) {
////            out.write(bytes, 0, length);
////            out.flush();
//////            soketFileListener.onSendFile((100 * progress / file.length()) + "%");
//////            onSendFile((100 * progress / file.length()) + "%");
//////            System.out.print("| " + (100 * progress / file.length()) + "% |");
////
////        }
//
//        fis.close();
//
//        Log.w("----", "文件传输完成");
//
//
//
//    }
//
//
//    public void setSocketTextListener(soketTextListener listener) {
//        this.soketTextListener = listener;
//    }
//
//
//    public void setSocketFileListener(soketFileListener listener) {
//        this.soketFileListener = listener;
//    }
//
//    public interface soketTextListener {
//        void onReciveText(String msg);
//    }
//
//    public interface soketFileListener {
//        void onSendFile(String data);
//
//        void onReciveFile();
//
//        void onReciveFileSuccess(String fileName);
//    }
//
//}
//
//
